Add ppc64le (IBM POWER) architecture support#2637
Conversation
📦 Package Count Analysis ResultsEnvironment: UBI 10 Container 🏭 Factory RepositoriesStatus: ✅ Factory repositories analysis completed successfully
Analysis performed by OpenHPC Package Count CI |
|
For easier re-use on our different branches it would be good to have one commit for each spec file. Please change that, so that each commit changes only one spec file. The ccache changes in gotcha.spec should also not be part of the same commit. There are three commits on the 2.x branch for gotcha which can be brought to 4.x with |
Alright. I'll look at it. |
bc90e57 to
e5aea32
Compare
🚀 CCache Statistics
📊 Detailed StatisticsopenEuler (aarch64)openEuler (x86_64)RHEL (aarch64/gnu15)RHEL (x86_64/gnu15)RHEL (x86_64/intel)🤖 Generated from workflow run |
|
Hi @adrianreber, PR was amended to have the separate commits per file. The other issues were also addressed. Thanks. |
|
Those |
Don't worry, this is because of the meta packages for the arm HPC compiler. I know how to fix it. |
Test Results111 files + 82 111 suites +82 5m 37s ⏱️ + 4m 47s For more details on these failures, see this check. Results for commit 5e4bd48. ± Comparison against base commit 680abc0. This pull request removes 3 and adds 282 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
|
Please rebase. That should solve the problems. |
e5aea32 to
28f9407
Compare
|
I see you make mpich on ppc64le depend on hwloc from OpenHPC. Any reason for that? |
I tough that was the correct thing to do since OpenHPC ships hwloc. Should it depends on the distro hwloc? |
Probably correct. But then we should do it for all architectures. Let's leave this PR for now. It is already large enough. But maybe something for a future change. |
Ok. I can remove that and we do afterwards. |
28f9407 to
7926887
Compare
|
Done @adrianreber I'm still running tests here. Recompiling everything takes a while. |
7926887 to
efa3b26
Compare
|
Sorry, but this needs another rebase. There were still things missing from other branches. |
Yeah, I was looking at it. There was permission errors in the CI. Let me fix. |
Signed-off-by: Adrian Reber <areber@redhat.com> (cherry picked from commit b4591a8)
- gotcha: 1.0.8 -> 1.0.10 upstream: llnl/gotcha Command: `misc/check_for_package_updates.py -v -o markdown gotcha --update` Signed-off-by: Adrian Reber <areber@redhat.com> (cherry picked from commit e0a7b0b)
Signed-off-by: Adrian Reber <areber@redhat.com> (cherry picked from commit abff307)
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
Sponsored-by: VersatusHPC Signed-off-by: Vinícius Ferrão <ferrao@versatushpc.com.br>
efa3b26 to
5e4bd48
Compare
|
I merged this for now. For further changes please try to do smaller PRs for easier testing of the changes. |
Summary
ppc64le (IBM POWER) architecture enablement for OpenHPC 4.x / EL10. @adrianreber suggested bringing this upstream. Sponsored by VersatusHPC; validated on POWER9 hardware (AlmaLinux 10 and openEuler 24.03).
Restructured per review: one commit per spec file, single-line subjects. The gotcha ccache handling is brought in by cherry-picking the three relevant 2.x commits (
git cherry-pick -x), with the ppc64le-specific gotcha change applied on top of them — not folded into a single commit.Scope
Component specs that needed architecture handling: gotcha, gnu-compilers, boost, fftw, openblas, likwid (+ a perf_event uncore patch), pdtoolkit, numpy, mpich, and the meta-package closure. 11 files.
The GNU compiler POWER9 baseline already landed in
OHPC_setup_compilerupstream, so it is no longer part of this PR.Design
%ifarch ppc64le(or%ifnarch … ppc64lein the meta-package), so the existing x86_64 and aarch64 builds are unaffected. For gotcha,rpmspec --parsediffers by exactly one line between targets (the ppc64leCMAKE_INSTALL_LIBDIR=lib).-mcpu=power9, matching the EL9+ ppc64le distro minimum (redhat-rpm-config's%__cflags_arch_ppc64le) and forward-compatible with POWER10/POWER11.TARGET=POWER9, fftw--enable-vsx, boostarchitecture=power, likwidGCCPOWER+ a perf_event uncore patch, pdtoolkitibm64linux, a numpy VSX3 build fix, gotchaCMAKE_INSTALL_LIBDIR=lib(cmake otherwise defaults tolib64, which breaks the module'slibpath — matching the existingscalapackidiom), and the meta-package groups scoped to the MPI families built on POWER (openmpi5).Verification
Built every touched package from source on both x86_64 and ppc64le (clean containers; AlmaLinux 10 and openEuler 24.03). All compile, with no regression on the existing architectures — the gated hunks are inert off-POWER, confirmed by both
rpmspec --parsediffs and real RPM builds. gotcha 1.0.10 (the version this PR cherry-picks from 2.x) builds clean on ppc64le with all 18 ctest cases passing.Notes
Source0fix to fetch ucx, but that's a build-time convenience, not a merge dependency.Sponsored by VersatusHPC.